﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Quanlynhasach.hethongxuly;
using Quanlynhasach.hethongluutru;


namespace Quanlynhasach
{
    public partial class frm_PhieuThuTien : Form
    {
        public frm_PhieuThuTien()
        {
            InitializeComponent();
        }
        public void HienThiDanhSachPhieuThuTien()
        {
            dgvDSPhieuThu.DataSource = PhieuThuDAO.LayDanhSachPhieuThu();
 
        }
        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        public static string MaKH;
        public void HienThiMaKhachHang()
        {
            txtMaKH.Text = MaKH;
        }
        private void btnLay_Click(object sender, EventArgs e)
        {
            frm_KhachHang f = new frm_KhachHang();
            f.ShowDialog();
            HienThiMaKhachHang();
        }

        private void frm_PhieuThuTien_Load(object sender, EventArgs e)
        {
            HienThiDanhSachPhieuThuTien();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            PhieuThuDTO ptDTO = new PhieuThuDTO();
            ptDTO.NgayThu = dtNgayThu.Value;
            try
            {
                ptDTO.MaKhachHang = Convert.ToInt32(txtMaKH.Text);
            }
            catch (FormatException)
            {
                MessageBox.Show("Mã khách hàng không được bỏ trống");
                return;
            }
          

            DataTable dt = QuyDinhDAO.GetQuyDinh();
            int ktSuDung = Convert.ToInt32(dt.Rows[0].ItemArray[5].ToString());
            DataTable dt1 = QuyDinhDAO.SlectTienNoKH(Convert.ToInt32(txtMaKH.Text));
            int TienNo = Convert.ToInt32(dt1.Rows[0].ItemArray[5].ToString());
            int TienThu = Convert.ToInt32(txtSoTienThu.Text);
            try 
            {
                ptDTO.SoTienThu = Convert.ToInt32(txtSoTienThu.Text);
            }
            catch (FormatException)
            {
                MessageBox.Show("Số tiền thu chưa nhập đúng quy định");
                return;
            }
            catch (OverflowException)
            {
                MessageBox.Show("Số tiền thu không được âm");
                return;
            }
            if (ktSuDung == 1)
            {
                if (TienThu > TienNo)
                {

                    MessageBox.Show("Tiền thu đã lớn hơn tiền khách hàng đang nợ");
                    return;
                }
                else
                {
                    int TienNoMoi = TienNo - TienThu;
                    KhachHangDTO khDTO=new KhachHangDTO();
                    khDTO.MaKhachHang=Convert.ToInt32(txtMaKH.Text);
                    khDTO.TienNo=TienNoMoi;
                    KhachHangDAO.UpdateTienNo(khDTO);

                  
                    PhieuThuDAO.ThemPhieuThu(ptDTO);
                    HienThiDanhSachPhieuThuTien();

                }
            }
          
        }
        public int SoTienThuTruoc;
        private void dgvDSPhieuThu_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvDSPhieuThu.SelectedRows.Count > 0)
            {
                txtMaPhieuThu.Text = dgvDSPhieuThu.SelectedRows[0].Cells[0].Value.ToString();
                dtNgayThu.Text= dgvDSPhieuThu.SelectedRows[0].Cells[1].Value.ToString();
                txtSoTienThu.Text = dgvDSPhieuThu.SelectedRows[0].Cells[2].Value.ToString();
                txtMaKH.Text= dgvDSPhieuThu.SelectedRows[0].Cells[3].Value.ToString();
                SoTienThuTruoc=Convert.ToInt32( dgvDSPhieuThu.SelectedRows[0].Cells[2].Value.ToString());
                
            }

        }
        private void btnXoa_Click(object sender, EventArgs e)
        {
            PhieuThuDTO ptDTO = new PhieuThuDTO();
            ptDTO.MaPhieuThu = Convert.ToInt32(txtMaPhieuThu.Text);
            PhieuThuDAO.XoaPhieuThu(ptDTO);
            HienThiDanhSachPhieuThuTien();
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            PhieuThuDTO ptDTO = new PhieuThuDTO();
            ptDTO.MaPhieuThu = Convert.ToInt32(txtMaPhieuThu.Text);
            ptDTO.NgayThu = dtNgayThu.Value;
            try
            {
                int MaKH = Convert.ToInt32(txtMaKH.Text);
            }
            catch (FormatException)
            {
                MessageBox.Show("Mã khách hàng không được bỏ trống");
                
                return;
            }
            DataTable dt = QuyDinhDAO.GetQuyDinh();
            int ktSuDung = Convert.ToInt32(dt.Rows[0].ItemArray[5].ToString());
            DataTable dt1 = QuyDinhDAO.SlectTienNoKH(Convert.ToInt32(txtMaKH.Text));
            int TienNo = Convert.ToInt32(dt1.Rows[0].ItemArray[5].ToString());
            int TienThu = Convert.ToInt32(txtSoTienThu.Text);
            try 
            {
                ptDTO.SoTienThu = Convert.ToInt32(txtSoTienThu.Text);
            }
            catch (FormatException)
            {
                MessageBox.Show("Số tiền thu chưa nhập đúng quy định");
                return;
            }
            catch (OverflowException)
            {
                MessageBox.Show("Số tiền thu không được âm");
                return;
            }
            if (ktSuDung == 1)
            {
                if (TienThu > TienNo)
                {

                    MessageBox.Show("Tiền thu đã lớn hơn tiền khách hàng đang nợ");
                    return;
                }
                else
                {
                    int TienThuMoi = TienThu - SoTienThuTruoc;
                    int TienNoMoi = TienNo - TienThuMoi;
                    KhachHangDTO khDTO = new KhachHangDTO();
                    khDTO.MaKhachHang = Convert.ToInt32(txtMaKH.Text);
                    khDTO.TienNo = TienNoMoi;
                    KhachHangDAO.UpdateTienNo(khDTO);


                    PhieuThuDAO.SuaPhieuThu(ptDTO);
                    HienThiDanhSachPhieuThuTien();

                }
            }
        


        }

        private void btnSoanLai_Click(object sender, EventArgs e)
        {
            txtSoTienThu.Clear();
            txtMaKH.Clear();
        }

       


    
    }
}
